#include <iostream>

// 在多态中，通常父类中的虚函数无意义，可以将其改为纯虚函数
// 纯虚函数语法：
// virtual 返回值类型 函数名(参数列表) = 0;
// 当类中包含纯虚函数时，该类称为抽象类
// 抽象类不能实例化对象
// 抽象类的子类必须重写纯虚函数，否则也属于抽象类

class Base
{
public:
    virtual void func() = 0;
};

class Son : public Base
{
public:
    void func()
    {
        std::cout << "Son::func()" << std::endl;
    }
};

void test01()
{
    Base *base = new Son;
    base->func();
    delete base;
}

int main()
{
    test01();
    return 0;
}